package com.homer.android.sdk.util;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class AccountUtil
{
    private AccountUtil()
    {
    }
    
    public static final int TYPE_NONE = 0;
    public static final int TYPE_EMAIL = 1;
    public static final int TYPE_PHONE = 2;
    
    public static int getAccountType(String account)
    {
        try
        {
            Long.parseLong(account);
        }
        catch (NumberFormatException e)
        {
        }
        
        if(isMobile(account))
        {
        	 return TYPE_PHONE;
        }
        
        if (isEmail(account))
        {
            return TYPE_EMAIL;
        }
        
        return TYPE_NONE;
    }
    
	/**
	 * 手机号验证
	 * 
	 * @param  str
	 * @return 验证通过返回true
	 */
	public static boolean isMobile(String str) { 
		Pattern p = null;
		Matcher m = null;
		boolean b = false; 
		p = Pattern.compile("^[1][3,4,5,8][0-9]{9}$"); // 验证手机号
		m = p.matcher(str);
		b = m.matches(); 
		return b;
	}
//	/**
//	 * 电话号码验证
//	 * 
//	 * @param  str
//	 * @return 验证通过返回true
//	 */
//	public static boolean isPhone(String str) { 
//		Pattern p1 = null,p2 = null;
//		Matcher m = null;
//		boolean b = false;  
//		p1 = Pattern.compile("^[0][1-9]{2,3}-[0-9]{5,10}$");  // 验证带区号的
//		p2 = Pattern.compile("^[1-9]{1}[0-9]{5,8}$");         // 验证没有区号的
//		if(str.length() >9)
//		{	m = p1.matcher(str);
// 		    b = m.matches();  
//		}else{
//			m = p2.matcher(str);
// 			b = m.matches(); 
//		}  
//		return b;
//	}

    
    private static boolean isEmail(String strEmail)
    {
        String strs[] = strEmail.split("@");
        if (strs.length != 2)
        {
            return false;
        }
        char firstChar = strEmail.charAt(0);
        if (firstChar == '@' || firstChar == '.' || firstChar == '+')
        {
            return false;
        }
        char lastChar = strEmail.charAt(strEmail.length() - 1);
        if (lastChar == '@' || lastChar == '.')
        {
            return false;
        }
        
        char atFrontChar = strs[0].charAt(strs[0].length() - 1);
        char atBehindChar = strs[1].charAt(0);
        if (atFrontChar == '.' || atFrontChar == '+')
        {
            return false;
        }
        if (atBehindChar == '.')
        {
            return false;
        }
        
        return true;
    }
}
